package com.betty.cscams.dao;

import java.util.List;

import com.betty.cscams.entity.BusScore;
import com.betty.cscams.entity.BusSports;
import com.betty.cscams.vo.ScoreQueryBean;
import org.apache.ibatis.annotations.Param;

/**
 * ---------------------------
 *  (BusScoreMapper)         
 * ---------------------------
 * 时间：  2022-04-03 12:19:27
 * ---------------------------
 */
public interface BusScoreMapper {

	/**
	 * 添加
	 * @param record
	 * @return
	 */
    int add(BusScore record);

    /**
     * 删除
     * @param id
     * @return
     */
    int delete(Long id);
    
    /**
     * 修改
     * @param record
     * @return
     */
    int update(BusScore record);
    
    /**
     * 根据主键查询
     * @param id
     * @return
     */    
    BusScore findById(Long id);

    /**
     * 基础分页查询
     * @return
     */    
    List<BusScore> findPage(@Param("subjectId") String subjectId, @Param("subjectType") String subjectType,@Param("name") String name, @Param("deptId") String deptId, @Param("termId") String termId, @Param("student") String student, @Param("status") String status, @Param("userType") String userType);


    List<BusScore> findPageTo(@Param("subjectId") String subjectId, @Param("subjectType") String subjectType,@Param("name") String name, @Param("deptId") String deptId, @Param("termId") String termId, @Param("student") String student, @Param("status") String status,@Param("userId") Long userId);


    int  findIsExit(BusScore record);


    /**
     * 查询导出数据
     */
    List<BusScore> findAllByParams(ScoreQueryBean params);

    void deleteByEntity(BusScore record);


    /**
     * 查询班级查询排名
     */
    List<BusScore> selectOrder(@Param("termId") Long termId,@Param("deptId") Long deptId,@Param("subjectType") Integer subjectType);


    /**
     * 计算总分
     */
    void  calculationTotal(@Param("termId") Long termId,@Param("deptId") Long deptId,@Param("subjectType") Integer subjectType);


    /**
     * 修改排名
     */
    void calculationOrder(BusScore busScore);

    /**
     * 清空计算
     */
    void calculationReset(@Param("termId") Long termId,@Param("deptId") Long deptId);


    void deleteByStudent(String studentNum);
}